---子弹弹射到身后目标
---@class SkillEffect454101:BaseSkillEffect
SkillEffect454101 = ClientFight.CreateClass("SkillEffect454101",ClientFight.BaseSkillEffect)
local t = SkillEffect454101
---@param parentSkill FightUsingSkill
---@param target Fighter
---@param triggerSkill FightUsingSkill
---@return SkillEffectResult
function t:triggerSkill(parentSkill,target,triggerSkill)
    local fight = parentSkill.fight
    local fighter = parentSkill.fighter
    local triggerSkillBean = triggerSkill.skill.skillBean
    triggerSkill.flyBegin = parentSkill.flyBegin
    --        T_skillBean parentSkillBean = parentSkill.skill.skillBean;
    -- 整个技能不可重复目标
    local parentTarget = parentSkill.target
    if (triggerSkillBean.f_SkillPointRepeat == SkillPointRepeatEnum.UNREPEATABLE_ALL) then
        parentSkill.excludes[parentTarget.fighterId] = true
    end
    target = parentTarget;

    triggerSkill.setTarget(target);

    -- 整个技能不可重复目标
    if (triggerSkillBean.f_SkillPointRepeat == SkillPointRepeatEnum.UNREPEATABLE_ALL) then
        triggerSkill.excludes = parentSkill.excludes
    end

    -- 目标不可重复
    if (triggerSkillBean.f_SkillPointRepeat ~= SkillPointRepeatEnum.REPEATABLE) then
        parentSkill.excludes[target.fighterId] = true;
    end

    -- 如果非分离技能，打断所有正在使用的非分离技能
    if (triggerSkillBean.f_SkillOut ~= 1 and parentSkill.fighter.usingSkill ~= nil) then
        SkillManager.finishSkill(parentSkill.fighter.usingSkill, true, FinishSkillReasonEnum.OTHER);
    end

    if (triggerSkillBean.f_SkillOut == 1) then
        local frameInfo = ReportManager.flyToJsonString(fight, parentSkill.flyBegin, target,
                triggerSkill)
        table.insert(fight.actions, frameInfo);
        FightManager.playActions(frameInfo,triggerSkill)
    else
        triggerSkill.originalTargetPlacePosition = Vector2(target.position.x,target.position.y)
        local attack = ReportManager.attackToJsonString(fight, parentSkill.fighter, target, triggerSkill, triggerSkill.speed)
        table.insert(fight.actions,attack)
        FightManager.playActions(attack)
        if (triggerSkillBean.f_Speed ~= 0 or triggerSkillBean.f_moveFrame ~= 0) then
            fighter.moveAttackAction = attack
        end
    end

    SkillManager.addSkill(fight, triggerSkill);
    --Fighter logTarget = target;
    SkillRoleMgr.savePathFile( "[" .. fight.frame .. "][SKILL]" .. parentSkill.fighter.fighterId .. "对"
   .. logTarget.fighterId .. "触发技能" .. triggerSkillBean.f_SkillID);

    -- 开始释放技能
    SkillManager.prepareSkill(triggerSkill, parentSkill.position);

    -- 子技能加速
    if (parentSkill.frame < parentSkill.skipFrame) then
        triggerSkill.skipFrame = parentSkill.skipFrame - parentSkill.frame
    end
    -- 聚光灯播放效果
    if (triggerSkill.stage ~= FightSkillStageEnum.FINISH
    and triggerSkill.frame < triggerSkill.skipFrame) then
        fight:addFrozenSkills(triggerSkill);
    end
    return SkillEffectResult.New(true,true);
end
t.New()